﻿/*
 * 版权声明 (c) 2025 XXX科技有限公司
 *
 * 本软件及其相关文档文件受版权保护。未经版权所有者明确书面许可，任何单位或个人不得
 * 以任何形式复制、传播、修改、出售、出租、反向工程、反编译或利用本软件的任何部分。
 *
 * 对于任何违反本声明的行为，版权所有者保留追究法律责任的权利。
 */

#include <iostream>
#include "phonebook.hpp"

#ifdef _WIN32
#include <windows.h>
#endif

// 清理控制台
void clear_screen() {
#ifdef _WIN32
	system("cls");
#else
	system("clear");
#endif
}

void wait_for_keypress() {
	std::cin.get(); // 等待用户按下回车或任意键
}

int main() {
#ifdef _WIN32
	SetConsoleOutputCP(CP_UTF8);
#endif
	PhoneBook phoneBook;
	phoneBook.initializePhoneBook();
	int choice;

	do {
		clear_screen();
		PhoneBook::printMenu();
		std::cout << "请选择: ";
		std::cin >> choice;
		std::cin.ignore(); // 清除输入缓冲区

		switch (choice) {
			case 1:
				phoneBook.addContact();
				wait_for_keypress();
				break;
			case 2:
				phoneBook.searchContact();
				wait_for_keypress();
				break;
			case 3:
				phoneBook.displayContacts();
				wait_for_keypress();
				break;
			case 4:
				phoneBook.deleteContact();
				wait_for_keypress();
				break;
			case 5:
				std::cout << "⛔ 退出通讯录. 再见!\n";
				break;
			default:
				std::cout << "⛔ 请重新选择.\n";
		}
	} while (choice != 5);

	return 0;
}
